/**
* File: IRayEnumDef_MAM.cs
*
* Purpose: IRay enum definition
*
*
* @author Haitao.Ning
* @version 1.0 2015/4/23
*
* Copyright (C) 2009, 2015, iRay Technology (Shanghai) Ltd.
*
*/
namespace iDetector
{
	public enum Enm_EventLevel
	{
		Enm_EventLevel_Info = 0,
		Enm_EventLevel_Warn = 1,
		Enm_EventLevel_Error = 2,
		Enm_EventLevel_Notify = 3,
	};

	public enum Enm_LogLevel
	{
		Enm_LogLevel_Debug = 0,
		Enm_LogLevel_Info = 1,
		Enm_LogLevel_Warn = 2,
		Enm_LogLevel_Error = 3,
		Enm_LogLevel_Always = 4,
	};

	public enum Enm_AuthMode
	{
		Enm_AuthMode_Null = 0,
		Enm_AuthMode_PCID = 1,
		Enm_AuthMode_UserCode = 2,
		Enm_AuthMode_DetSN = 3,
	};

	public enum Enm_Switch
	{
		Enm_Off = 0,
		Enm_On = 1,
	};

	public enum Enm_DetectorState
	{
		Enm_State_Unknown = 0,
		Enm_State_Ready = 1,
		Enm_State_Busy = 2,
		Enm_State_Sleeping = 3,
	};

	public enum Enm_Transaction
	{
		Enm_Transaction_Null = 0,
		Enm_Transaction_GainGen = 1, 	 // Generating Gain calibration templage
		Enm_Transaction_DefectGen = 2, 	 // Generating Defect calibration templage
		Enm_Transaction_SingleGainGen = 3, 	 // Generating Single Gain calibration templage
		Enm_Transaction_DualEnergyAcq = 6,
		Enm_Transaction_DualEnergyOffsetGen = 7,
		Enm_Transaction_DualEnergyGainGen = 8,
		Enm_Transaction_DualEnergyDefectGen = 9,
		Enm_Transaction_DualEnergyGridGen = 10,
		Enm_Transaction_FactoryGainGen = 11,
	};

	public enum Enm_ConnectionState
	{
		Enm_ConnState_Unknown = 0, 	 // not initialized
		Enm_ConnState_HardwareBreak = 1, 	 // specified communication hardware can not find, or been plugged out
		Enm_ConnState_NotConnected = 2, 	 // hardware exist but not ready for communication
		Enm_ConnState_LowRate = 3, 	 // connected but in bad situation
		Enm_ConnState_OK = 4, 	 // normal connected
	};

	public enum Enm_ImageTag
	{
		Enm_ImageTag_Width = 0x0100, 	 // Tiff tag: image width in pixels
		Enm_ImageTag_Height = 0x0101, 	 // Tiff tag: image height in pixels
		Enm_ImageTag_BitsPerSample = 0x0102, 	 // Tiff tag: bits per channel (sample)
		Enm_ImageTag_Compression = 0x0103, 	 // Tiff tag: data compression technique
		Enm_ImageTag_PhotoMetric = 0x0106, 	 // Tiff tag: photometric interpretation
		Enm_ImageTag_Description = 0x010E, 	 // Tiff tag: info about image
		Enm_ImageTag_Maker = 0x010F, 	 // Tiff tag: scanner manufacturer name
		Enm_ImageTag_Model = 0x0110, 	 // Tiff tag: scanner model name/number
		Enm_ImageTag_StripOffsets = 0x0111, 	 // Tiff tag: offsets to data strips
		Enm_ImageTag_Orientation = 0x0112, 	 // Tiff tag: image orientation
		Enm_ImageTag_SamplePerPixel = 0x0115, 	 // Tiff tag: samples per pixel
		Enm_ImageTag_RowsPerStrip = 0x0116, 	 // Tiff tag: rows per strip of data
		Enm_ImageTag_StripByteCounts = 0x0117, 	 // Tiff tag: bytes counts for strips
		Enm_ImageTag_XResolution = 0x011A, 	 // Tiff tag: pixels/resolution in x
		Enm_ImageTag_YResolution = 0x011B, 	 // Tiff tag: pixels/resolution in y
		Enm_ImageTag_ResolutionUnit = 0x0128, 	 // Tiff tag: units of resolutions
		Enm_ImageTag_Software = 0x0131, 	 // Tiff tag: name & release
		Enm_ImageTag_DateTime = 0x0132, 	 // Tiff tag: creation date and time
		Enm_ImageTag_FrameNo = 0x8001, 	 // Extern tag:
		Enm_ImageTag_Temperature = 0x8002, 	 // Extern tag:
		Enm_ImageTag_RealFrequency = 0x8003, 	 // Extern tag:
		Enm_ImageTag_ExposureDelay = 0x8004, 	 // Extern tag:
		Enm_ImageTag_AcquireTime = 0x8005, 	 // Extern tag:
		Enm_ImageTag_KV = 0x8006, 	 // Extern tag:
		Enm_ImageTag_MA = 0x8007, 	 // Extern tag:
		Enm_ImageTag_MS = 0x8008, 	 // Extern tag:
		Enm_ImageTag_SID = 0x8009, 	 // Extern tag:
		Enm_ImageTag_Dose = 0x800A, 	 // Extern tag:
		Enm_ImageTag_ExposureLine = 0x800B, 	 // Extern tag:
		Enm_ImageTag_CorrectFlag = 0x800C, 	 // Extern tag:
		Enm_ImageTag_BinningMode = 0x800D, 	 // Extern tag:
		Enm_ImageTag_XRayWindow = 0x800E, 	 // Extern tag:
		Enm_ImageTag_FrameRate = 0x800F, 	 // Extern tag:
		Enm_ImageTag_BodyPartSection = 0x8010, 	 // Extern tag:
		Enm_ImageTag_BodyPart = 0x8011, 	 // Extern tag:
		Enm_ImageTag_DoseRate = 0x8012, 	 // Extern tag:
		Enm_ImageTag_AvgValue = 0x8013, 	 // Extern tag:
		Enm_ImageTag_CenterValue = 0x8014, 	 // Extern tag:
		Enm_ImageTag_ImageQualityNG = 0x8015, 	 // Extern tag: Image quality not good, caused by Long-delay-time, vibration, or invalid correction, etc.
		Enm_ImageTag_LagPositionNG = 0x8016, 	 // Extern tag: Exposure time not good for lag calibration template image
		Enm_ImageTag_iRayProductNO = 0x8017, 	 // Extern tag: iRay detector product number
		Enm_ImageTag_ExposureStatus = 0x8018, 	 // Extern tag: Exposure status, -1:default freesync mode, 0: obsolete, 2: new freesync mode, other: reserved
		Enm_ImageTag_ImageID = 0x8019, 	 // Extern tag:
		Enm_ImageTag_EnergyIndex = 0x801A, 	 // Extern tag: the smaller the Energy index, the greater the energy
		Enm_ImageTag_iAECLines = 0x801B, 	 // Extern tag: iAEC lines position as string, splited by ','
		Enm_ImageTag_ImageEncrypt = 0x801C, 	 // Extern tag: Image encrypted or not
		Enm_ImageTag_IdcActivePosAvgValue = 0x801D, 	 // Extern tag: iAEC active position total pixel average value, this tag used in iAEC calibration
		Enm_ImageTag_Annotation = 0xA001, 	 // Extern tag:
		Enm_ImageTag_FirmwareVer = 0xA002, 	 // Extern tag:
		Enm_ImageTag_SoftwareVer = 0xA003, 	 // Extern tag:
		Enm_ImageTag_FpdSerialNo = 0xA004, 	 // Extern tag:
		Enm_ImageTag_Filter = 0xA005, 	 // Extern tag:
		Enm_ImageTag_CheckID = 0xA006, 	 // Extern tag:
		Enm_ImageTag_PatientID = 0xA007, 	 // Extern tag:
		Enm_ImageTag_PatientName = 0xA008, 	 // Extern tag:
		Enm_ImageTag_PatientGender = 0xA009, 	 // Extern tag:
		Enm_ImageTag_PatientAge = 0xA00A, 	 // Extern tag:
		Enm_ImageTag_PatientWeight = 0xA00B, 	 // Extern tag:
		Enm_ImageTag_PatientHeight = 0xA00C, 	 // Extern tag:
		Enm_ImageTag_PatientSize = 0xA00D, 	 // Extern tag:
	};

	public enum Enm_TriggerMode
	{
		Enm_TriggerMode_Outer = 0,
		Enm_TriggerMode_Soft = 2,
		Enm_TriggerMode_Prep = 3,
		Enm_TriggerMode_AED = 6,
		Enm_TriggerMode_SyncOut = 8,
	};

	public enum Enm_Binning
	{
		Enm_Binning_Null = 0, 	 // No binning
		Enm_Binning_2x2 = 1, 	 // 2x2 binning
	};

	public enum Enm_Dig_Binning
	{
		Enm_DigBin_Null = 0, 	 // No binning
		Enm_DigBin_32x32 = 1, 	 // 32x32 binning
		Enm_DigBin_64x64 = 1, 	 // 64x64 binning
		Enm_DigBin_128x128 = 1, 	 // 128x128 binning
	};

	public enum Enm_Zoom
	{
		Enm_Zoom_Null = 0, 	 // No zoom
		Enm_Zoom_1024x640 = 1,
		Enm_Zoom_1024x320 = 2,
		Enm_Zoom_1024x4 = 3,
		Enm_Zoom_1024x2 = 4,
		Enm_Zoom_1024x1 = 5,
		Enm_Zoom_512x512 = 6,
		Enm_Zoom_256x256 = 7,
		Enm_Zoom_3072x3072 = 8,
		Enm_Zoom_2048x2048 = 9,
		Enm_Zoom_1536x1536 = 10,
		Enm_Zoom_1024x1024 = 11,
	};

	public enum Enm_DriveMode
	{
		Enm_DriveMode_Single = 0,
		Enm_DriveMode_Dual = 1, 	 // image line format:0,N-1,1,N-2...N/2-1,N/2
		Enm_DriveMode_Dual2 = 2, 	 // image line format:0,1,2...N-1
	};

	public enum Enm_DynaFlag
	{
		Enm_DynaFlag_Static = 0,
		Enm_DynaFlag_Dynamic = 1,
	};

	public enum Enm_CorrectOption
	{
		Enm_CorrectOp_HW_PreOffset = 0x0001,
		Enm_CorrectOp_HW_PostOffset = 0x0002,
		Enm_CorrectOp_HW_Gain = 0x0004,
		Enm_CorrectOp_HW_Defect = 0x0010,
		Enm_CorrectOp_HW_Ghost = 0x0020,
		Enm_CorrectOp_HW_Lag = 0x0040,
		Enm_CorrectOp_HW_MicroPhony = 0x0080,
		Enm_CorrectOp_HW_GridRemoval = 0x0100,
		Enm_CorrectOp_HW_VirtualGrid = 0x0200,
		Enm_CorrectOp_HW_Shading = 0x0400,
		Enm_CorrectOp_SW_PreOffset = 0x00010000,
		Enm_CorrectOp_SW_PostOffset = 0x00020000,
		Enm_CorrectOp_SW_Gain = 0x00040000,
		Enm_CorrectOp_SW_Defect = 0x00100000,
		Enm_CorrectOp_SW_Ghost = 0x00200000,
		Enm_CorrectOp_SW_Lag = 0x00400000,
		Enm_CorrectOp_SW_MicroPhony = 0x00800000,
		Enm_CorrectOp_SW_GridRemoval = 0x01000000,
		Enm_CorrectOp_SW_VirtualGrid = 0x02000000,
		Enm_CorrectOp_SW_Shading = 0x40000000,
	};

	public enum Enm_SubProductNo
	{
		Enm_SubProductNo_GoS = 0,
		Enm_SubProductNo_CsI = 1,
		Enm_SubProductNo_CsI400 = 2,
		Enm_SubProductNo_CsI550 = 3,
		Enm_SubProductNo_CsI500 = 4,
		Enm_SubProductNo_CsI600 = 5,
	};

	public enum Enm_SignalLevel
	{
		Enm_SignalLevel_Low = 0,
		Enm_SignalLevel_High = 1,
	};

	public enum Enm_FluroSync
	{
		Enm_FluroSync_FreeRun = 0,
		Enm_FluroSync_SyncIn = 1,
		Enm_FluroSync_SyncOut = 2,
	};

	public enum Enm_PGA
	{
		Enm_PGA_0 = 0,
		Enm_PGA_1 = 1,
		Enm_PGA_2 = 2,
		Enm_PGA_3 = 3,
		Enm_PGA_4 = 4,
		Enm_PGA_5 = 5,
		Enm_PGA_6 = 6,
		Enm_PGA_7 = 7,
		Enm_PGA_8 = 8,
	};

	public enum Enm_HWOffsetType
	{
		Enm_OffsetType_Null = 0,
		Enm_OffsetType_Post = 1,
		Enm_OffsetType_Pre = 2,
	};

	public enum Enm_AppMode
	{
		Enm_Contact = 0x00,
		Enm_Magnification = 0x01,
		Enm_Stereo = 0x02,
		Enm_Tomo = 0x03,
	};

	public enum Enm_ExpMode
	{
		Enm_ExpMode_Null = 0x00,
		Enm_ExpMode_Manual = 0x01,
		Enm_ExpMode_AEC = 0x02,
		Enm_ExpMode_Tomo_Manual = 0x03,
		Enm_ExpMode_Tomo_AEC = 0x04,
	};

	public enum Enm_ExpModeEx
	{
		Enm_Null = 0x00,
		Enm_Manual = 0x01,
		Enm_AEC = 0x02,
		Enm_Tomo_Manual = 0x03,
		Enm_Tomo_AEC = 0x04,
		Enm_Stereo_Manual = 0x05,
		Enm_AED = 0x06,
	};

	public enum Enm_Filter
	{
		Enm_Filter1 = 0,
		Enm_Filter2 = 1,
		Enm_Filter3 = 2,
		Enm_Filter4 = 3,
		Enm_Filter5 = 4,
	};

	public enum Enm_PrepCapMode
	{
		Enm_Flush = 0,
		Enm_ClearAcq = 1,
		Enm_Acq2 = 2,
	};

	public enum Enm_OutModeCapTrig
	{
		Enm_OutModeCapTrig_X_ON = 0,
		Enm_OutModeCapTrig_Prep = 1,
	};

	public enum Enm_ImgChType
	{
		Enm_ImgCh_Ethernet = 0,
		Enm_ImgCh_Cameralink = 1,
		Enm_ImgCh_GigeVision = 2,
	};

	public enum Enm_EthernetProtocol
	{
		Enm_Ethernet_UDP = 0,
		Enm_Ethernet_TCP = 1,
	};

	public enum Enm_FW_DeviceType
	{
		Enm_FW_DeviceType_MainFPGA = 0x01,
		Enm_FW_DeviceType_ReadFPGA1 = 0x02,
		Enm_FW_DeviceType_ReadFPGA2 = 0x03,
		Enm_FW_DeviceType_ControlBox = 0x04,
		Enm_FW_DeviceType_MCU1 = 0x10,
		Enm_FW_DeviceType_AllInOne = 0xF0,
		Enm_FW_DeviceType_None = 0xFF,
	};

	public enum Enm_CaliDataState
	{
		Enm_CaliDataState_NoData = 0,
		Enm_CaliDataState_Valid = 1,
		Enm_CaliDataState_ValidWarn = 2,
		Enm_CaliDataState_OutOfDate = 3,
		Enm_CaliDataState_ParamMisMatch = 4,
	};

	public enum Enm_FileTypes
	{
		Enm_File_Offset = 0x01,
		Enm_File_Gain = 0x02,
		Enm_File_Defect = 0x04,
		Enm_File_Lag = 0x05,
		Enm_File_GridRemoval = 0x06,
		Enm_File_SingleGain = 0x07,
		Enm_File_ArmLog = 0xA0,
		Enm_File_Firmware = 0xA1,
	};

	public enum Enm_FreesyncSubFlow
	{
		Enm_FreesyncSubFlow_Reserved = 0,
		Enm_FreesyncSubFlow_NFNR = 1, 	 // ISync plus: Single ExpLine
		Enm_FreesyncSubFlow_FFNR = 2,
		Enm_FreesyncSubFlow_3 = 3, 	 // FSync Dual Gate: Multi ExpLine (distinguish odd/even column)
		Enm_FreesyncSubFlow_4 = 4, 	 // FSync Single Gate: Multi ExpLine (whole line)
		Enm_FreesyncSubFlow_5 = 5, 	 // ISync plus：Single ExpLine for PreOffset
	};

	public enum Enm_InnerSubFlow
	{
		Enm_InnerSubFlow_ClearAcq = 0, 	 // Normal mode
		Enm_InnerSubFlow_CycleAcq = 1, 	 // Cycle self acquisition as freesync implementation
	};

	public enum Enm_NetworkBand
	{
		Enm_NetworkBand_1G = 1, 	 // 1Gbps network band
		Enm_NetworkBand_2_5G = 2, 	 // 2.5Gbps network band
		Enm_NetworkBand_5G = 3, 	 // 5Gbps network band
		Enm_NetworkBand_10G = 4, 	 // 10Gbps network band
	};

	public enum Enm_Sensitivity
	{
		Enm_Sensitivity_DC = 0, 	 // Low sensitivity
		Enm_Sensitivity_AC = 1, 	 // high sensitivity
	};

	public enum Enm_Language
	{
		Enm_Language_EN = 0,
		Enm_Language_CH = 1,
	};

	public enum Enm_ProdType
	{
		Enm_Prd_Mammo1012P = 0x005F, 	 // Mammo1012P
		Enm_Prd_Mammo1012X = 0x0094, 	 // Mammo1012X
		Enm_Prd_Mammo1012F2 = 0x0093, 	 // Mammo1012F2
		Enm_Prd_Mammo1012C = 0x0095, 	 // Mammo1012C
		Enm_Prd_Venu0912HR = 0x00F4, 	 // Venu0912HR
	};
}
